// 3. 编程题
// 实现双色球抽奖游戏中奖号码的生成，中奖号码由 6 个红球号码和 1 个蓝球号码组成。
// 其中红球号码要求随机生成 6 个 1~33 之间不重复的随机号码。
// 其中蓝球号码要求随机生成 1 个 1~16 之间的随机号码。

import java.util.Arrays;
import java.util.Random;

// 题目分析： 随机数使用Random

// 思路：
//      1. 先定义一个大小为7的数组
//      2. 循环数组，如果是 i = 0 直接 赋值 1~33 随机数，
//      3. 如果i = arr.length-1，直接 赋值 1 ~16 的随机数
//      4. 其他情况下的i，就对比 arr[0]~arr[i-1]的值是否相同，
//      5. 如果相同，重新赋值，如果不同，直接赋值
//      6. 随后打印出这7个数

// 运行结果：[7, 3, 9, 26, 30, 2, 8]
public class Work03 {

    public static void main(String[] args) {

        int[] arr = new int[7];

        for (int i = 0; i < arr.length; i++) {
            Random random = new Random();
            if (i == 0) {               // i = 0 直接 赋值 1~33 随机数
                arr[i] = random.nextInt(33) + 1;
            } else if (i == arr.length - 1) { // 如果i = arr.length-1，直接  赋值 1 ~16 的随机数
                arr[i] = random.nextInt(16) + 1;
            } else {    // 其他情况下的i，就对比 arr[0]~arr[i-1]的值是否相同，
                boolean flag = true;
                int temp = 0 ;
                while (flag){
                    temp = random.nextInt(33) + 1;
                    for(int j = 0 ; j < i ; j ++){
                        if(arr[j] == temp){
                            flag = true;
                            break;
                        }else if(j == i -1){
                            flag = false;
                        }
                    }
                }
                arr[i] = temp;
            }
        }

        System.out.println(Arrays.toString(arr));
    }
}
